Typical initiators include processors, DSP, graphic accelerators, DMAs engines. Typical slaves include register banks and memory. Example memories include static memory, dynamic memory, read-only memory, flash memory, etc. An initiator in an NoC can use the concept of an address to access a destination (target/slave) of a particular request. In addition, a typical NoC may provide a protocol translation required to enable communication between masters and slaves using different interface protocols, like AHB, AXI, OCP, etc.
In various systems, designing and implementing an NoC for attachment to multiple masters with an AMBA-AHB interface is done using one of the two following approaches: (1) each master is having its own NoC master port or (2) an AMBA-AHB bus is used to connect multiple AHB masters to a single NoC port.
The first solution, (1), offers the highest possible performances, as each request from a different master can be translated independently to a request in the NoC protocol. The request can then be forwarded to the NoC fabric. Therefore if multiple masters are issuing requests simultaneously, the translation operations occur in parallel and they all can proceed as fast as allowed by the chosen NoC fabric architecture. This solution has a high hardware cost of one NoC master port per AHB master, however.
The second solution, (2), on the other hand, offers lower gate count, at the expense of strongly limited performances. In a system using the second solution, all requests presented to an AHB bus will be arbitrated and serialized one at a time on the AHB bus. An AHB request typically might include a burst of two to sixteen beats. Each beat might include one address phase, which is the request, followed by one data phase that can overlap with the next address phase. The data phase can only terminate when the slave that was the destination of the associated address phase, has sent a response. Typically, in an NoC, the number of clock cycles between a request (address) and associated response (data) can be high, in the range of 10 to 100 cycles. Therefore, a burst on an AHB bus can occupy the AHB bus for a long time and in a rather inefficient way.